148
Blockchain Technology
shows the different version types. The version numbers can be any of the
following:
• Previous block’s hash: It is a 32-byte field. The value in this field, as the
name suggests, is the hash value of the previous block’s header (Tabora,
2019). This acts as a pointer to the previous block in the blockchain. One of
the interesting features of this field is that it cannot be changed or manipu
lated without changing the details of the previous blocks. If an intruder
wishes to change the previous block’s header in a large blockchain, he or
she must change every previous block prior to the one being modified. This
is known as the “Avalanche Effect”. The cost involved in altering so many
blocks is very high, as it would require massive amounts of computing
power to calculate the hash rate. This is the key feature that makes the
blockchain secure and resistant to any tampering. SHA-256 is the hashing
algorithm used to create a hash of the previous block.
• Merkle hash or Merkle root: The size of the field is 32 bytes. The content
of this field is the hash value of the blockchain’s Merkle root. The hashing
algorithm utilized is the SHA-256. The Merkle root of a block is calcu
lated using the hash values corresponding to each transaction that has been
included in that block. It consists of all the transaction IDs of that block.
The placement or order of the transaction IDs must satisfy the consensus
rules.
• Timestamp: This is a field that can accommodate data of 4 bytes. The time
specified in this field is a measure of the UNIX epoch time. The value of the
timestamp can be defined as the elapsed number of seconds since January
1970. The timer starts when the miner begins the hashing process of the
header. A timestamp is said to be valid if it is found to be greater than the
median time of the preceding 11 blocks.
• Difficulty level or Difficulty target: This field is also referred to as “bits”
and has a size of 4 bytes. The encoded bits act as a threshold value, which
must be equal to or greater than the hash value of the block’s header. The
TABLE 9.1
Version Types
Version Type
Description
Version 1
This was the first version that was used when blockchain came into existence. It is
known as the genesis block and was created in January 2009.
Version 2
Corresponds to bitcoin core 0.7.0, used the User Activated Soft Fork (UASF) and was
created in September 2012. It has been described in BIP34.
Version 3
Corresponds to bitcoin core 0.10.0, used UASF and was created in February 2015. It
has been described in BIP66.
Version 4
Corresponds to bitcoin core 0.11.2, used UASF and was created in November 2015. It
has been described in BIP65.